//package com.item;
//import java.util.concurrent.TimeUnit;
//import org.openjdk.jmh.annotations.*;
//import org.openjdk.jmh.runner.Runner;
//import org.openjdk.jmh.runner.RunnerException;
//import org.openjdk.jmh.runner.options.Options;
//import org.openjdk.jmh.runner.options.OptionsBuilder;
//
///**
// *
// * JMH 基准测试入门
// *
// * Throughput： 吞吐量，测试每秒可以执行操作的次数
// * Average Time： 平均耗时，测试单次操作的平均耗时
// * Sample Time：采样耗时，测试单次操作的耗时，包括最大、最小耗时，已经百分位耗时等
// * Single Shot Time： 只计算一次的耗时，一般用来测试冷启动的性能（不设置JVM预热）
// * All： 测试上面的所有指标
// */
//
//@BenchmarkMode(Mode.AverageTime)
//@State(Scope.Thread)
//@Fork(1)
//@OutputTimeUnit(TimeUnit.MILLISECONDS)
//@Warmup(iterations = 2)
//@Measurement(iterations = 5)
//public class codeTest {
//
//    String string = "";
//    StringBuilder stringBuilder = new StringBuilder();
//    StringBuffer stringBuffer = new StringBuffer();
//
//    @Benchmark
//    public String stringAdd() {
//        for (int i = 0; i < 1000; i++) {
//            string = string + i;
//        }
//        return string;
//    }
//
//    @Benchmark
//    public String stringBuilderAppend() {
//        for (int i = 0; i < 1000; i++) {
//            stringBuilder.append(i);
//        }
//        return stringBuilder.toString();
//    }
//
//    @Benchmark
//    public String stringBufferAppend() {
//        for (int i = 0; i < 1000; i++) {
//            stringBuffer.append(i);
//        }
//        return stringBuffer.toString();
//    }
//
//    public static void main(String[] args) throws RunnerException {
//        Options opt = new OptionsBuilder()
//                .include(codeTest.class.getSimpleName())
//                .build();
//        new Runner(opt).run();
//    }
//}